,,,,,,,,,;;::ccllllloooddddooooooodddddddddxxxkkkkkkkkkkkkkkkkk
,,,''''',,;;;:cccccllloooooooooooooddddddddxxxxxkkkkkkkkkkkkkkk
,,,'''''',,,,;::::::cclloodooooooooc:coolc:cxxxkkkkkkkkkkkkkkkk
'''''''''',,,,,;;cddolcllooddddooc,;kXNNXKkl;dkkkkkkkkkkkkOkkkk
'''......'',,,;;co;..,,,cloodddol'.dKKKNN0ko;lkkkkkkkkkOOOOOOkk
,,,''....'',;;:okooc,coolloooddo:.,cod,,kx:,,cOOOOOOkkOOOOOOOOO
;;;;;,,'..',;:oXKOkkdclc;;cloddol;coxx:ck;'''lkOOOOOkkkkkOOOOOO
;;:::::;,'',;:o0kdoolo:;:coodddooodKOkolo,:;,;ccccllolcccldkOOO
::::::::;;,,,;clcl;'.:l,;codddddlddkd::;',c:'::::::cccccc::codx
::::;;;;::;;;;clldoc..,coodddxxl;ccdkkdl;,c';::::::ccllcccccccc
;:::;;;;;:::''ddddoc'':ccclllcoXOc',cddxc;';cccccccccccccccccc:
;;:::;;;;;:lk00xol:'.,;;;;,,,;;oWMXo'.....,loollllcllc:::clclc:
;;;;:::;;;,,;cddxdc,....''';,,,;lNMXxddokO;,;:coolollcccccclccl
;;;:::;;;,,;;,,...........',,,,;;;o0xokx:cl'.':lollccccccllldx0
,,;;;;;;,,;,,,'........',,,,;;;,,,;xMOdO0W0l,'',;cloooolcccccdk
',,;;;;,,,,,''.......,;;:::;;;;;,,,;dXONXXNO,',x:',;:lllcccccll
'',,,,,,,,,'''.......:cc::cc:;,;;;,;;lkWWN0X;'',,.','',;:cccccc
''',,,',,,,,'........,:lc::cc:;;,:;;;;cWMWXd;'','''''''.:::::cc
'''''',,,,,'........'',clccc::;,,,::,,;xMWWx;'','.''''..;:;;;::
.'''',,,,,''........',,;oolcccc:;;,:l;,:KWW0;'',..'.....'::::cl
..''',,,,''.........',,,:lol:::cc:;,,c,,cNWk;,,'..''....:lloood
..''',,''...... ....',,,,:llc::::cc;,.,,,xXc,,'..''.....,dxxolc
.'..''''...........',,,,,,;cllc::ccc:,,,,;o,,'..........'O0kc:c
...................'',,,,,;:::ccclllc:;,',,,'..'.........okc;cc
.................''''',,;::::::;;:clllc:,,;'...'.....,'..lc;:::
..............'.'''''',;;;:::::;;;,,;:c:;;,'''......'''..l:,,:x
....     ....';''''''''';:::ccc:::;;;;;;;:,'''......;,'..c;'';l
........'',,',,'''''''',,:ccccclccc::c::;c,'.'.....';,'''c;''::
